#include<stdio.h>
#include<iostream>
#include <stdlib.h>
#define MaxSize 100 
using namespace std;
typedef char ElemType;
struct SNode {
	ElemType data;
    struct SNode *next;
};
typedef struct SNode *Stack;
bool Push(Stack s,ElemType e);
Stack CreateStack(Stack &s);
bool Pop(Stack s,ElemType &e);
bool symmetry(ElemType str[]);
int main()
{
	ElemType str[MaxSize];
	gets(str);
	symmetry(str);
	return 0;
}
Stack CreateStack(Stack &s){
	s=(SNode *)malloc(sizeof(struct SNode));
	s->next=NULL;
}
bool Push(Stack s,ElemType e){
	Stack p;
     	p=(SNode *)malloc(sizeof(struct SNode));
	    p->data=e;
		p->next=s->next;
		s->next=p; 
	return true;
}
bool Pop(Stack s,ElemType &e)
{
	Stack p;
	if(s->next==NULL)
	return false;
	p=s->next;
	e=p->data;
	s->next=p->next;
	free(p);
	return true;
}
bool symmetry(ElemType str[]){
	ElemType e;
	Stack s;
    int i,flag=0;
	CreateStack(s);
	for(i=0;str[i]!='\0';i++)
	{
		Push(s,str[i]);
	}
	for(i=0;str[i]!='\0';i++)
	{
	    Pop(s,e);
		if(str[i]!=e)
		{
			flag=1;
		}
	}
	if(flag==0)
	printf("yes");
	else
	printf("no");
}
